package com.jeesite.modules.yzw.service;

import com.jeesite.common.idgen.IdGen;
import com.jeesite.modules.common.dao.SysExtractDao;
import com.jeesite.modules.yzw.constant.Constant;
import com.jeesite.modules.yzw.dao.OtsIflytekOrgDao;
import com.jeesite.modules.yzw.entity.OtsIflytekOrg;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @description:
 * @author: ciye
 * @date: 2022/5/18 16:35
 */
@Service
public class OtsIfytekOrgService {
    @Resource
    private OtsIflytekOrgDao otsIflytekOrgDao;

    public void modifyOtsIflytekOrgStatus(Map map){
        otsIflytekOrgDao.modifyOtsIflytekOrgStatus(map);
    }

    public String queryLastIflytekOrgSync(){
        return otsIflytekOrgDao.queryLastIflytekOrgSync();
    }

    /**
     * 新增或者修改组织机构信息
     * @param otsIflytekOrg
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public int save(OtsIflytekOrg otsIflytekOrg) {
        otsIflytekOrg.setCompid(Constant.IFLYTEK_COMPID);
        otsIflytekOrg.setSyncupdatetime(new Date());
        //查询当前组织是否存在（同步组织表）
        OtsIflytekOrg oldOtsIflytekOrg = getOtsIflytekOrg(Constant.IFLYTEK_COMPID, otsIflytekOrg.getId());

        //保存到同步组织表
        if (oldOtsIflytekOrg == null) {
            oldOtsIflytekOrg=otsIflytekOrgDao.getUrcorgidMax();
            if(oldOtsIflytekOrg!=null){
                otsIflytekOrg.setUrcorgid(oldOtsIflytekOrg.getUrcorgid()+1);
            }else {
                otsIflytekOrg.setUrcorgid(1L);
            }
            otsIflytekOrg.setSynctime(new Date());
            otsIflytekOrg.setSyncstate(0);
            return otsIflytekOrgDao.addOtsIflytekOrg(otsIflytekOrg);
        } else {
            otsIflytekOrg.setSyncstate(1);
            return otsIflytekOrgDao.modifyOtsIflytekOrgByid(otsIflytekOrg);
        }
    }

    /**
     * 根据id查询
     * @param id     主键
     */
    public OtsIflytekOrg getOtsIflytekOrg(Long compid, String id) {
        return otsIflytekOrgDao.getOtsIflytekOrgById(compid, id);
    }

    /**
     * 查询同步的机构为新增的数据
     * @return
     */
    public List<OtsIflytekOrg> findOtsIflytekOrg() {
        return otsIflytekOrgDao.findOtsIflytekOrg();
    }
}
